01|这场架,先不是技术架

很多人今天回头看 CSS,会觉得它不过是一门样式语言。

选择器、属性、值、花括号。

可在 1994 年,CSS 还没出生的时候,大家先吵起来的,并不是语法该怎么写。

而是一个更原始的问题:

网页到底该听谁的?

听作者的?

还是听用户的?

这问题你今天看着像抽象哲学,当年却非常具体。因为那时候越来越多写网页的人发现,HTML 能告诉浏览器“这是一段标题”“这是一段正文”,却很难告诉它:

“请你把这一页弄得好看一点。”

于是抱怨开始冒出来。

最经典的一次,落在了 www-talk 邮件列表里。


02|Andreessen 先泼了一盆冷水

1994 年初,有人在 www-talk 上问:网页能不能像 Word 一样,把字体、颜色、版面控制得更细一点?

回这封信的人,是 Marc Andreessen

对,就是后来网景那位。

当时他还在 Mosaic 那条线上,语气也很工程师:不耐烦,干脆,带点“这事你们别想了”的味道。Lie 和 Bos 后来在书里引用过那段意思,归根结底就是一句:

你们想像桌面排版软件那样控制网页长什么样?对不起,没门。

这不是一句小情绪。

它其实很能代表 Web 早期的一种气质:网页首先是文档,不是画册;结构比外观重要;浏览器应该自己决定怎么把内容显示给用户。

问题是,另一股力量也已经在长。

越来越多作者不满足于“能发出去就行”,他们想要更像杂志、更像海报、更像作品的网页。也就是说,Web 正在从“能看”往“好看”挪。

一旦这股欲望起来,Andreessen 那种“没门”,迟早会顶不住。


03|然后,剧情在三天里突然加速

真正像电视剧开场的一段,发生在 1994 年 10 月

先是 10 月 10 日

在 CERN 工作的 Håkon Wium Lie 放出了一份草案:

《Cascading HTML style sheets — a proposal》

它很早,很稚嫩,也远不是今天的 CSS 长相。可它干了一件特别关键的事:

它第一次把“网页样式”这件一直散在抱怨里的需求,整理成了可以讨论、可以改进、可以继续做下去的正式提案。

然后是 10 月 13 日

Andreessen 宣布 Mozilla 的首个 beta 可供测试。这个 Mozilla 后来会一路演化成 Netscape Navigator。更妙的是,这个 beta 里已经有了像 <center> 这样的新标签。

你看,戏剧性就在这里。

一边有人在说:别把网页当桌面排版玩具。

另一边,浏览器已经开始往 HTML 里塞控制外观的新东西。

这不是谁虚伪。

这是那个时代最典型的局面:需求跑在前面,原则在后面追。

网页已经越来越像“要被设计的东西”,可大家还没谈拢:到底该用什么方式设计。

是继续往 HTML 里加标签?

还是另开一套样式语言?

这就是 CSS 真正出场前的空气。


04|Håkon 那份提案,真正新在哪里?

讲 CSS 的起源,最容易写成“某天某个人发明了一门语言”。

可真正重要的,通常不是“谁第一个写出来”,而是“为什么偏偏这套东西后来活下来了”。

因为 1994 年前后,样式语言的思路并不只这一条。

除了 Håkon 的提案,当时还有:

  • Viola 里的样式思路
  • Robert Raisch 更早的方案
  • 以及那个在排版世界里非常庞大、非常正式、也非常不适合拿来直接塞进 Web 的 DSSSL

换句话说,CSS 不是唯一候选。

它最后能赢,靠的不是“它最复杂”,恰恰相反,是它抓住了一个别人没抓牢的点:

Web 上的样式,不可能只听作者一个人的。

Håkon 和后来加入的 Bert Bos 很早就意识到,网页和纸张不一样。读者有不同设备、不同屏幕、不同需求,甚至有自己的样式偏好。那怎么办?

他们给出的答案,就是后来写进 CSS 名字里的那个词:

Cascading。

不是作者一票否决。

也不是用户一票否决。

而是把作者、用户、浏览器、设备这几股力量,放进同一个冲突解决机制里。

这事听起来很技术,实际上很政治。

因为它在说:

网页不是出版社独占的成品,它是一种要在用户手里重新成立的媒介。


05|芝加哥那场会,大家很快就吵到理念上了

1994 年 10 月 17 日到 20 日,芝加哥办了第二届国际 WWW 大会,名字很长,叫 “Mosaic and the Web”

这场会后来在很多 CSS 历史叙述里都被提到。Lie 和 Bos 的回忆、主办方档案、后续文字整理,虽然在个别细节上有出入,但有一点是一致的:

CSS 一拿出来,就不只是技术讨论了。

因为它会逼出一个所有人都绕不开的问题:

如果作者设置了一种展示方式,而用户不喜欢,谁说了算?

这时候争论一下就变得很具体。

支持“作者优先”的人会举例:警示语、法律文本、商业版式,难道能让读者随便改小、改乱吗?

支持“用户优先”的人则会说:最后盯着屏幕的是用户,不是设计师。你不能为了版面整齐,强迫一个视力不好的人按你的字号活。

Lie 和 Bos 后来在书里提到一个很有名的想象图:一根滑杆,一头是 user,一头是 author,可以来回调整权重。

今天看,这像个产品 demo。

但在 1994 年,它其实是在公开问:

网页这东西,到底更像出版物,还是更像一块会被用户重新解释的屏幕?

你如果往后看,就会发现这条线根本没结束。

它后来换了很多外衣:

  • 暗黑模式算不算尊重作者原设计
  • 浏览器强制字号算不算越权
  • 前缀危机时到底该优先“别让网页坏掉”还是“别让单一实现绑架标准”

这些问题表面不一样,底子却很像。

所以 CSS 从第一天起,真正在处理的就不只是样式。

它处理的是权力。


06|1995 年,另一个关键人物来了

接下来,故事里第二个关键名字该出场了:

Bert Bos

1995 年 4 月,在德国达姆施塔特的 WWW3 会议上,Håkon 和 Bos 第一次见面。

Bos 当时在做一个叫 Argo 的浏览器,也有自己关于样式系统的想法。两人很快决定合流。

这一步非常重要。

因为很多标准不是死在反对者手里,而是死在“支持者彼此不兼容”手里。

CSS 没走上那条路,靠的恰恰是这种早期合流。

而且 Bos 那边带来的一个关键影响是:

这门语言不该只服务 HTML。

所以很快,提案标题里的 HTML 被拿掉了。

只剩下:

Cascading Style Sheets

名字一缩,野心反而大了。

这不再是一套给某一种标记语言临时缝的小衣服,而是一种打算长期活下去的样式机制。


07|再往前一步,吵架终于有了固定场子

1995 年 5 月www-style 邮件列表成立。

这件事听起来很朴素,但在标准史里意义很大。

因为从这一刻开始,关于 CSS 的争论、细节、修订、拉扯,不再只散落在各处,而是有了一条长期公开的痕迹。

说得俗一点:

吵架终于有了固定街口。

写历史的人喜欢这种列表,因为一封封邮件能把很多后来被洗平了的棱角重新翻出来;当年在场的人未必喜欢,因为这通常意味着另一件事:

邮箱要爆了。

但无论如何,CSS 到这一步,已经不再只是某个个人提案。

它开始有社区、有回应、有反对、有版本演化。

也就是说,它开始像一门真的会继续走下去的语言了。


08|到 1995 年底,它终于走到更大的门口

1995 年,W3C 逐渐运转起来。年底,HTML Editorial Review Board(HTML ERB) 出现,CSS1 被正式拉进更严肃的标准流程里打磨。

到这里,第一篇就该停下来了。

因为再往前,故事的味道要变了。

前面这一篇,讲的是 CSS 为什么会出生。

下一篇开始,讲的是另一件更难看的事:

CSS 出生以后,浏览器厂商到底肯不肯认它。

微软已经动了。

网景也不会装作没看见。

标准还没盖章,厂商就要先下场了。

这时候的 CSS,已经不再只是一个关于样式的提案,而是一块即将被大公司争抢的牌子。


如果你只记一句,那就记这句:

CSS 最早要解决的,不是“网页怎么变漂亮”,而是“网页的外观,究竟该由谁说了算”。


编者注(事实核对):Andreessen 的相关呛声讨论出现在 1994 年 Q1www-talk 归档;Håkon Wium Lie 的提案文档日期为 1994-10-10,同日可在 www-talk 归档中互证;Mozilla 首个 beta 的公告日期为 1994-10-13。芝加哥 “Mosaic and the Web” 大会日期以 IW3C2 档案为准,即 1994-10-17 至 1994-10-20。作者/用户之争、滑杆示意、Bos 加入、www-style 创建等叙述,主要依据 Lie & Bos 第 20 章Bert Bos《A brief history of CSS until 2016》 交叉整理。


关键人物速览

  • Håkon Wium Lie:CSS 最早的提案提出者。1994 年在 CERN 工作时放出 Cascading HTML style sheets 草案,是这套样式语言最早的推动者之一。
  • Bert Bos:CSS 共同奠基者。原本在做带样式能力的 Argo 浏览器,后来与 Håkon 合流,把 CSS 从个人提案推向更完整的规范。
  • Marc Andreessen:早期 Web 浏览器关键人物,Mosaic 核心开发者之一,后来创办网景。第一篇里那封“别指望像 Word 一样控制网页外观”的冷水回帖,就来自他所代表的那种早期浏览器立场。
  • Tim Berners-Lee:万维网发明者。虽然本文不是围着他展开,但 CSS 之所以会被认真对待,离不开他所开启的 Web 基础框架,以及 W3C 后来提供的标准化平台。
  • Dave Raggett:早期 HTML 重要推动者,也是在幕后鼓励 CSS 草案尽快公开讨论的人之一。很多“HTML 不该一路长成排版语言”的判断,与他这条线密切相关。

参考与延伸阅读

  1. Lie 首份公开草案(v0.92,文内日期 1994-10-10)
    https://www.w3.org/People/howcome/p/cascade.html

  2. www-talk 归档:上述提案帖(1994-10-10)
    http://1997.webhistory.org/www.lists/www-talk.1994q4/0153.html

  3. Marc Andreessen 1994 年相关讨论(www-talk,Lie/Bos 第 20 章所引)
    http://1997.webhistory.org/www.lists/www-talk.1994q1/0648.html

  4. Lie & Bert Bos 合著第 20 章 The CSS saga(W3C 托管摘录)
    https://www.w3.org/Style/LieBos2e/history/Overview.html

  5. Bert Bos《A brief history of CSS until 2016》(W3C)
    https://www.w3.org/Style/CSS20/history.html

  6. 第二届国际 WWW 会议「Mosaic and the Web」档案(1994-10-17 — 10-20,芝加哥)
    https://archives.iw3c2.org/www2/

  7. www-style 列表说明与归档入口
    https://www.w3.org/Mail/Lists#www-style

  8. Håkon Wium Lie(背景与生平,与 1、4 交叉)
    https://en.wikipedia.org/wiki/H%C3%A5kon_Wium_Lie


下篇预告:标准还没定,微软和网景已经打起来了。